/*
 * Main.java
 * Copyright (c) 2006, FMap
 */

package fmap;

import fmap.actions.collection.GetCollectionAction;
import fmap.actions.collection.GetMapFCollecionAction;
import fmap.dao.NodeDao;
import fmap.utils.properties.ContentProperties;
import fmap.utils.properties.PropertiesException;


/**
 * <small>Created on 8 de agosto de 2005, 14:57</small><br>
 *
 * Clase principal
 *
 * @author  Javier Sanroman Araujo
 * @version $Revision: 1.1
 */
public class Main
{
    
    private static void cargaEstado ()
    {
        // Eliminamos resultados de la ultima busqueda si es que existen
        new NodeDao ().deleteNodeResultSearch ();
        
        try
        {
            if ( !new ContentProperties ().getPropiedad ("idColeccionAbierta").equals ("") && !new ContentProperties ().getPropiedad ("idColeccionAbierta").equals ("0"))
            {
                // Cargamos la ultima coleccion con todos sus mapas de ficheros
                DatosCompartidos.setCollectionActual ( new GetCollectionAction ().GetCollectionAction ( (int)new Integer (new ContentProperties ().getPropiedad ("idColeccionAbierta"))  ) );
                DatosCompartidos.getCollectionActual ().setMapF ( new GetMapFCollecionAction ().GetMapFCollecionAction ( DatosCompartidos.getCollectionActual ().getId () ) );

                // Mostramos en el panel derecho el card de los nodos
                java.awt.CardLayout layout = (java.awt.CardLayout)DatosCompartidos.getPanelRight ().getLayout ();
                layout.show (DatosCompartidos.getPanelRight (), "cardCollection");
                
                DatosCompartidos.getPanelRight ().getTextFCollectionTitulo ().setText ( DatosCompartidos.getCollectionActual ().getName () );
                DatosCompartidos.getPanelRight ().getTextPCollectionDesc ().setText ( DatosCompartidos.getCollectionActual ().getDesc () );
                // --------------------------------------------------------

            }
            else
            {
                // Mostramos en el panel derecho el card de los nodos
                java.awt.CardLayout layout = (java.awt.CardLayout)DatosCompartidos.getPanelRight ().getLayout ();
                layout.show (DatosCompartidos.getPanelRight (), "cardBlank");
                // --------------------------------------------------------

                DatosCompartidos.getJTreePersonal ().setVisible ( false );
            }
        }
        catch( PropertiesException e )
        {
            e.getNombreParametro ();
        }
        
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main (String[] args)
    {
/*
        new fmap.bd.CollectionDao().insertCollection ();
        new fmap.bd.CollectionDao().selectCollections ();
 
        fmap.bd.DerbyDao.disconnect ();
 */
        
        SplashWindow splash = new SplashWindow ();
        
        new DatosCompartidos ();
        
        cargaEstado ();
        
        java.awt.EventQueue.invokeLater (new Runnable ()
        {
            public void run ()
            {
                DatosCompartidos.setJFrameMain ( new fmap.gui.JFrameMain () );
            }
        });
        
        splash.setVisible ( false );
        
        
//                            System.out.println ( fmap.utils.memory.ObjectScale.getUsedMemory () );
//System.gc ();
/*
long heapSize = Runtime.getRuntime ().freeMemory ();
System.out.println ("TOTAL MEMORY"+Runtime.getRuntime ().totalMemory ());
System.out.println ("ANTES DE GC"+heapSize);
System.gc();
heapSize = Runtime.getRuntime ().freeMemory ();
System.out.println ("DESPUES DE GC"+heapSize);
 */
//                            System.out.println ( fmap.utils.memory.ObjectScale.getUsedMemory () );
        
/*
int numberOfMillisecondsInTheFuture = 10000; //10sec
Date timeToRun = new Date( System.currentTimeMillis () + numberOfMillisecondsInTheFuture);
Timer timer = new Timer();
 */
/*
timer.schedule (
        new TimerTask() {
public void run(){ System.out.println ("HOLA"); }
}
,timeToRun );
 */
        
/*
timer.scheduleAtFixedRate (
        new TimerTask() {
public void run(){ System.out.println ("HOLA"); }
}
,numberOfMillisecondsInTheFuture, 1000 );
 */
    }
    
}